The present invention relates to the graphical display of objects in a display space on a display window, and more particularly, to a method and a system for automatically sizing a graphical display of objects included in a display space to fit the dimensions of a display window.
Computer programs often have associated data files that are processed by the computer program during its normal execution. A data file can contain information that is processed and presented to a user either in a video presentation or an audio presentation, or a combination of video and audio. Presentation programs are examples of computer programs that process an associated data file.
Presentation programs enable a user to create, edit, manage, and perform xe2x80x9cpresentationsxe2x80x9d such as a slide show with a computer. One example of a popular presentation program is xe2x80x9cPowerPoint,xe2x80x9d available from xe2x80x9cMicrosoft Corporationxe2x80x9d, of Redmond, Wash. A slide show presentation includes a set of electronic xe2x80x9cslides,xe2x80x9d each slide corresponding to one screen or page of output. An electronic slide may also be converted to a 35 mm or overhead transparency and displayed in a standard slide projector or overhead projector. Each slide contains one or more objects, such as text, graphical images, or graphic automation. A slide may also include a sound object or video that is played when the slide is displayed during a xe2x80x9cslide showxe2x80x9d performance.
A presentation program xe2x80x9cperformsxe2x80x9d a slide show by sequentially displaying a series of slides contained within the slide show presentation. The slides are displayed on a computer screen or projected onto a separate surface. During a performance of a slide show, a xe2x80x9cpresenterxe2x80x9d controls the performance by invoking commands to xe2x80x9cadvancexe2x80x9d to the next slide. A command can be entered using a keyboard, a mouse, or another suitable input device.
Alternatively, an author of a slide show presentation can include slide xe2x80x9ctimingsxe2x80x9d with each slide. A slide timing corresponding to a slide indicates the number of seconds that the slide is displayed before the presentation program automatically advances to the next slide. During a performance of a slide show, a slide show presentation automatically advances to the next slide when the existing slide""s timing ends. An ordered sequence of slides is predetermined by a slide show presentation author. During a performance of a slide show, a presenter can enter commands to alter the sequence of slides.
The xe2x80x9cPowerPointxe2x80x9d program enables a user to save a slide show in an associated slide presentation file, so that the slide show can be recreated at another location that has access to xe2x80x9cPowerPointxe2x80x9d and the slide presentation file. Unfortunately, a presentation program such as xe2x80x9cPowerPointxe2x80x9d is not common place and many computer users do not have access to this type of program. In the past, slide presentation files were often distributed on a storage medium that also contained at least a display only version of the presentation program for graphically displaying the slide show to a user with the information stored in the slide presentation file. Since there is limited space available on a contemporary storage medium that is intended for mass distribution, the number and size of slide presentation files that can economically be distributed in this manner is presently limited. Additionally, since a slide show included in a slide presentation file must be displayed with some version of a presentation program, additional effort is required to locate, purchase and install the program before the slide show can be graphically displayed to other users, if not previously installed.
An on-line information system typically includes one computer system (a server) that makes information available so that other computer systems (clients) can remotely access the information. The server manages access to the information, which can be structured as a set of independent on-line services. The server and client communicate via messages conforming to a communication protocol and sent over a communication channel such as a computer network or through a dial-up connection.
Information resources managed by the server may include files, databases, and programs on the server system or on an external computer system. The information that the server provides may simply be stored on the server, may be converted from other formats manually or automatically, may be computed on the server in response to a client request, may be derived from data and programs on the server or other machines, or may be derived by any combination of these techniques.
The user of an on-line service typically uses a browser program executed on the client system to access the information managed by the on-line service. The browser enables the user to selectively view, search, download, print, edit, and/or file the information managed by the server. On-line services are available on the World Wide Web (WWW), which operates over the global Internet. The Internet interconnects a large number of otherwise unrelated computers or sites. Similar services are available on private networks called Intranets that may not be connected to the Internet, and through local area networks (LANs). The WWW and similar private architectures provide a xe2x80x9cwebxe2x80x9d of interconnected document objects. On the WWW, these document objects are located at various sites on the global Internet.
Among the types of document objects in an on-line service are documents and scripts. Documents that are published on the WWW are written in the Hypertext Markup Language (HTML). HTML documents can be created using programs specifically designed for that purpose or by executing script files. An HTML document includes a hierarchical set of markup elements; most elements have a start tag, followed by content, followed by an end tag. The content is a combination of text and nested markup elements. Tags, which are enclosed in angle brackets (xe2x80x98 less than xe2x80x99 and xe2x80x98 greater than xe2x80x99), indicate how the document is structured and how to display the document, as well as destinations and labels for hypertext links. There are tags for markup elements such as titles and headers, text attributes such as bold and italic, lists, paragraph boundaries, links to other documents or other parts of the same document, in-line graphic images, and for many other features.
The following lines of exemplary HTML code briefly illustrate how the language is used in a sample HTML document:
Some words are  less than B greater than bold less than /B greater than , others are  less than I greater than italic less than /I greater than . Here we start a new paragraph. less than P greater than 
Here""s a hyperlink to the  less than A HREF=a URL to the home page of Microsoft corporation greater than microsoft corporation less than /A greater than home page.
This sample HTML document is a hypertext document because it contains a hypertext link to another document in the line that includes xe2x80x9cHREF=.xe2x80x9d The format of this link is described below. A hypertext document may also have a link to other parts of the same document. Linked documents may generally be located anywhere on the Internet. When a user is viewing the document using a browser, the links are displayed as highlighted words or phrases. For example, using a browser, the sample document above might be displayed on the user""s screen as follows:
Some words are bold, others are italic. Here we start a new paragraph.
Here""s a link to the Microsoft Corporation home page.
In a browser, the link may be selected, for example, by clicking on the highlighted area with a mouse. Typically, the screen cursor changes when positioned on a hypertext link. Selecting a link will cause the associated document to be displayed. Thus, clicking on the highlighted text xe2x80x9cMicrosoft Corporationxe2x80x9d would fetch and display the associated home page for that entity. Similarly, the HTML language also provides a mechanism (the image or xe2x80x9cIMGxe2x80x9d element) that enables an HTML document to include an image that is stored as a separate file. When the end user views the HTML document, the included image is displayed as part of the document, at the point where the image element was positioned in the document. Also, when the user is viewing an HTML page that includes a display of a thumbnail image using a browser, a hyperlink connection from the thumbnail image to the original image can be activated by selecting the displayed thumbnail image. In this way, the original image is retrieved and graphically displayed when the user selects the thumbnail image.
One of the most commonly installed programs on a computer is a browser for graphically displaying an HTML page that may be accessed locally or through an on-line service connected to a network such as the Internet. The browser program may be a stand alone program such as the xe2x80x9cMicrosoft Corporation""s Internet Explorerxe2x80x9d or the browser""s functionality may be integrated into a computer operating system, e.g., the xe2x80x9cWindows 98xe2x80x9d operating system available from the xe2x80x9cMicrosoft Corporation.xe2x80x9d Although the browser is used to generate a graphical display of objects included in an HTML page, the dimensions of the browser""s display window can differ from the dimensions initially coded for the display space of the page. The size of the browser""s display window can vary according to the resolution of the video display or the window dimensions that are selected by a user.
The HTML language provides for initially encoding the graphical display of an HTML page""s display space to defined dimensions such as 640xc3x97480 pixels, i.e., 640 vertical lines by 480 horizontal lines in a video display. In the prior art, when the selected dimensions of the display window and/or the resolution of the video display did not correspond to the encoded values of the display space of the HTML page, the objects in the page were not optimally displayed to a user. For example, if the HTML page had defined dimensions of 640xc3x97480 lines of resolution, the graphical display of the page would appear relatively small in a display window sized to fit a 1024xc3x97768 video display resolution.
On the other hand, if the same HTML page was displayed in a browser display window sized to fit a 320xc3x97240 video display resolution, the graphical display of the document would appear significantly larger than the displayable area in the display window. In this case, the user would have to scroll through the display window to view the entire graphical display of the objects in the HTML page""s display space. Similarly, if at least one of a user selected dimension for the display window was less than a dimension of the HTML page""s display space, the entire graphical display of the objects in the display space would only be viewable by scrolling.
In the prior art, one solution to this problem has been to create different HTML pages that are encoded for different video display resolutions in an HTML document. Another solution has been to create all of the HTML pages in a document at the lowest video display resolution offered by most video displays, e.g., 640xc3x97480. None of the prior art solutions solve the problem of automatically fitting the graphical display of an HTML page to a display window that has a video display resolution that is different than the video display resolution initially encoded for the HTML page.
It is desirable to have a facility that enables a presentation program to generate an HTML document that includes a set of HTML pages that closely relate to each slide in a slide presentation file created by the program. Preferably, such a facility would enable another user to employ another program, such as a browser, already installed on the other user""s computer to graphically display an HTML page that corresponds to a related slide. In this case, when the HTML document related to the slide show presentation is distributed to other users on a storage media, the media would not have to include a version of the presentation program. Since more of the capacity of the storage media could be used for storing HTML documents related to slide show presentations, significantly larger slide show presentations could be distributed on the same storage media.
Also, an HTML document corresponding to the slide show presentation could be distributed over a network as an information resource with an on-line service, so that another user could easily download the document to their computer and graphically display the HTML pages corresponding to the slides in the slide show presentation with a program already installed on the computer such as a browser program. Additionally, it is preferable that the facility would automatically fit the dimensions and positions of a graphical display of objects in an HTML page to a display window when the size and/or video display resolution of the display window is different than the display space of the HTML page.
The present invention provides a method for automatically fitting the graphical display of an object in a display space of a scalable page to the size and video resolution of a display window. First, a page and its contents, e.g., an object disposed in a display space, are translated into a scalable page that is contained in a master container. The size of the display space is related to the default size of a display space for the master container. Also, the size and position of the object in the display space of the scalable page is related to the size of the scalable page""s display space.
The present invention determines if at least one of the dimensions of a display window is different than a corresponding dimension of the display space in the scalable page. If different, a scalar that corresponds to the difference in the dimensions of the display window and the display space of the scalable page is calculated. The scalar is employed to resize and reposition the object and the display space in the scalable page by calculating a new size for the display space that is related to the size of the display window and the default size of the master container. The calculation of the new size for the display space causes the related size and position of the object to automatically change in proportion to the new size. Finally, the present invention automatically fits the graphical display of the resized and repositioned objects and display space in the scalable page to the size of the display window, so that the user may view the object in the display space of the scalable page without having to scroll the display window back and forth.
The page to be translated may be a slide that was created with a presentation program or a document created with an editor. Also, the scalable page, the master page and the object may be coded in a computer language that supports percent-based nesting of a size and a position of an object and a display space. For example, the computer language may be HTML, DHTML, CGI, Javascript and VRHTML.
In accordance with other aspects of this invention, the graphical display of the resized and repositioned objects and display space are only displayed after the display space and the object have been resized and repositioned to fit the size of the display window.
In accordance with further aspects of this invention, maintaining the original aspect ratio is considered when determining the value for the scalar.
The object in the display space may be a text object that is associated with a percent-based font size, which is related to a default font size included in the master page. The percent-based font size may be resized with the scalar and text objects may be nested. A minimum and maximum size of font may be selected for resizing.
The object included in the scalable page may be an image map object associated with a hyperlink. The image map object is sized and positioned in the scalable page with a set of coordinates that are stored in an array. The scalar is used to calculate a new set of coordinates when fitting the graphical display of the image map object to the display window.
The object in the display space of the scalable page may be an image object. The image object may have a type that includes bitmap and vector graphic. Also, the display window may be associated with different types of programs such as a browser and an editor. DIV tags may be used to support percent-based sizing and positioning of the display space and the object in the scalable page. The setting of a flag in the scalable page determines when the object in the display space of the scalable page may be graphically displayed in the display window.
The present invention also provides a system for implementing the method described above and a computer readable media for distributing logical instructions that enable a system to perform the previously described method.